#ifndef MOTORATAQUE_H
#define	MOTORATAQUE_H

#include <vector>
#include "Motor.h"
#include "MotorJuego.h"
#include "Escenario.h"
#include "Partida.h"
#include "Huevo.h"

#define VELOCIDAD_MOD 10.0

using namespace std;
using namespace TP::Juego::Arena::Actores;

namespace TP { namespace Juego { namespace Motorizacion { 

class MotorAtaque : public Motor {
    friend class MotorJuegoFactory;
public:

    MotorAtaque();

    virtual ~MotorAtaque();
    
    virtual Ticks notificacionAvanceTiempo (Ticks pTiempo);
    
    virtual Partida* correrPartida (Partida* pPartida, Ticks pTiempo);
    
    virtual Partida* getPartidaPorJugador (Jugador* pJugador);
    
    void atacar (Jugador* pJugador, const string& pNombrePartida, Posicion* pPosicion) throw (Excepcion&);

protected:
    virtual vector<Partida*>& getPartidas();  
    void lanzarHuevo (Partida* pPartida, Huevo* pHuevo, Posicion* pPosicionBlanco);
    
private:
    MotorJuego* _motorJuego;
};
}}}

#endif	/* MOTORATAQUE_H */